<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>05_Promise相关面试题</title>
</head>
<body>
  
  <script type="text/javascript">
    setTimeout( () => {
      console.log(1);
    }, 0)
    Promise.resolve().then( () => {
      console.log(2);
    })
    Promise.resolve().then( () => {
      console.log(3);
    })
    console.log(4);
  </script>


  <!-- 
    4 2 3 1
    代码初始化 / 通读一边
    1: setTimeout     待执行的回调函数 => 放到 宏列队
    2: .then          待执行的回调函数 => 放到 微列队
    3: .then          待执行的回调函数 => 放到 微列队
    4: console.log(4) 不是回调函数    =>  直接执行打印  4

    首先执行 微任务 清空微任务队列
    依次清空执行栈   (先进先出原则)                     2、3
    微任务清空后执行宏任务    调用一个                  1
    so: 4 2 3 1
  -->


</body>
</html>